nacos 3.1.1 (Nov 26th 2025)
nacos 3.1.1 (Nov 26th 2025)
为什么要使用 Nacos
想象一下,你正指挥着一支庞大的舰队(你的微服务集群)在数字海洋中航行。起初,只有几艘小船,你靠呼喊(硬编码)就能让它们协同。突然之间,舰队膨胀到上百艘,每艘船都需要动态调整航向(配置)、随时知道队友的位置(服务发现),并且能在风暴(故障)中快速重组。你声嘶力竭,手忙脚乱地更新着海图,却眼睁睁看着船队陷入混乱与延迟的泥潭。这就是现代分布式系统的经典困局:在动态与复杂中,失控感如影随形。
Nacos 的出现,正是为了平息这场风暴。它不是一个冰冷的工具,而是为你提供了一座智能的“控制塔”。它让你能从“手工劳作”的泥沼中解脱,告别那些脆弱不堪的静态配置文件和四处散落的服务地址列表。通过 Nacos,你可以优雅地实现服务的实时注册、发现与健康管理,并像推送手机应用更新一样,动态地管理和推送所有微服务的配置。它解决的不仅是技术问题,更是开发者与管理者的核心矛盾:对系统清晰度、掌控力与敏捷性的迫切需求,与日益增长的架构复杂度之间的激烈冲突。选择 Nacos,意味着选择秩序、可见性与从容。
Nacos 是什么
Nacos,源自英文“Naming and Configuration Service”的缩写。简单来说,它是一个集服务发现、配置管理和服务管理于一体的动态服务基础设施。你可以将它理解为微服务架构中的两个核心“管家”合二为一:
- 服务发现管家:自动登记每个微服务的地址,并让其他服务能轻松找到它们。
- 配置中心管家:集中存储和管理所有微服务的配置信息,修改后能实时通知到各个服务,无需重启。
入门示例
让我们通过一个真实的电商微服务场景来感受 Nacos 的魅力。
场景:你有一个“订单服务”(order-service)需要调用“用户服务”(user-service)来获取用户信息。同时,“订单服务”的折扣率需要能够根据促销活动快速调整。
步骤 1:服务注册与发现
- 启动 Nacos Server:从 GitHub 发布页下载并启动 Nacos,访问其控制台(通常为
http://localhost:8848/nacos)。 - 用户服务注册:在
user-service的application.yml中配置 Nacos 服务器地址,启动后,该服务会自动将自己注册到 Nacos。spring: application: name: user-service cloud: nacos: discovery: server-addr: localhost:8848 - 订单服务发现:
order-service同样配置 Nacos。当它需要调用user-service时,不再需要硬编码 IP 地址,只需使用服务名。通过 OpenFeign 或 RestTemplate 配合@LoadBalanced,即可实现基于服务名的智能调用。@FeignClient(name = "user-service") public interface UserClient { @GetMapping("/user/{id}") User getUserById(@PathVariable Long id); }
步骤 2:动态配置管理
- 在 Nacos 控制台创建配置:在“配置管理”中,新建一个
Data ID为order-service.yaml的配置,内容为:discount: 0.9 # 9折优惠 - 订单服务监听配置:在
order-service中,添加配置监听。@RefreshScope @RestController public class OrderController { @Value("${discount:1.0}") private Double discount; // 注入配置值 public BigDecimal calculatePrice(BigDecimal originalPrice) { return originalPrice.multiply(BigDecimal.valueOf(discount)); } } - 动态生效:在促销季,你只需在 Nacos 控制台将
discount改为0.8(8折),order-service会几乎实时地接收到新配置,并立即以新折扣率计算价格,整个过程无需重启任何服务。
Nacos 3.1.1 版本更新了什么
Nacos 3.1.1 版本主要增强了其在 AI 原生场景下的能力与系统稳健性。本次更新重点提升了 MCP(模型上下文协议) 和 A2A(智能体间通信) 功能,包括支持批量注册智能体端点、导入 MCP 服务时合并版本、以及提供覆盖更新的选项。同时,新增了出入站通信的默认安全配置支持,为安全的 AI 智能体交互奠定了基础。此外,版本还包含了一系列重要的稳定性修复和功能优化,例如线程池配置优化和脚本改进。
更新日志
本次发布侧重于增强 Nacos 的 MCP 和 A2A(智能体到智能体)能力,提升系统稳定性,并完善安全与配置管理。主要新增内容包括支持批量注册智能体端点、在导入 MCP 服务时合并版本,以及通过 overrideExisting 选项增强更新 MCP 服务器的灵活性。此版本还引入了对入站和出站通信的默认安全配置支持,为安全的 AI 智能体交互奠定了基础。
此版本的详细变更如下:
Feature
- [#13867] 支持在更新 MCP 服务器时覆盖现有配置。
- [#13922] 添加线程池配置以允许核心线程超时。
- [#13946] 重构 AgentEndpoint 模型并添加新字段以支持高级协议和查询。
- [#13953] 增加对默认安全配置的支持,包括入站和出站安全方案的选择与设置。
- [#13957] 支持批量注册智能体端点。
- [#13951] 为控制台模块添加可配置的 CORS 过滤器。
Enhancement/Refactor
- [#13822] 分离客户端执行器与登录调度执行器的职责,防止线程池耗尽。
- [#13863] 优化
shutdown.sh脚本,将多个 PID 合并到一行,使进程终止更清晰。 - [#13911] 增强
importToolsFromMcpAPI 以支持流式协议服务器。 - [#13914] 升级 checkStyle 插件版本以改进代码规范检查和可维护性。
- [#13945] 支持在导入 MCP 服务器规范时合并版本。
- [#13963] 重构列表配置 API 以支持返回 configTags 和描述信息。
BugFix
- [#13140] 修复当客户端命名空间为空时,ConfigChangeNotifyRequest 的命名空间一致性问题。
- [#13860] 修复 ConfigMigrateService 中潜在的空指针异常风险。
- [#13866] 修复控制台中
Release Note 由上游项目发布,本站仅索引镜像,版权归原作者所有。